#  Flask应用入口
from flask import Flask
from flask_cors import CORS
from flask_sse import sse

import config
from exts import db, jwt
from route import register_all_routes
import os


app = Flask(__name__)
CORS(app, expose_headers=['token'])  # 允许访问自定义的 token 头
CORS(app, resources={r"/stream": {"origins": "*"}})
app.config.from_object(config.Config)  # 配置
app.register_blueprint(sse, url_prefix='/stream')  # 注册 SSE URL提供服务
db.init_app(app)  # 连接数据库
jwt.init_app(app)  # 初始化jwt

# 测试redis连接
# from redis import Redis
# R = Redis.from_url(app.config['REDIS_URL'])
# print("redis:", R.ping())  # 应输出 True
# 注册路由
app = register_all_routes(app)

# 如果是使用 flask run 启动，配置环境变量打开调试模式
if __name__ != '__main__':
    if app.config.get('DEBUG'):
        os.environ['FLASK_DEBUG'] = '1'

# 如果是python app.py启动，直接运行（config.py配置了调试模式）
if __name__ == "__main__":
    app.run()
